com.rscja.deviceapi

## Class BDNavigation

- java.lang.Object
- - com.rscja.deviceapi.BDNavigation

-     public class BDNavigation
      extends java.lang.Object

  北斗导航模块操作类

  注意：
  1、使用前请确认您的机器已安装此模块。
  2、在操作设备前需要调用 `open()` 打开设备，使用完后调用 `close()` 关闭设备
  3、要实时跟踪位置的变化需要调用 `addBDLocationListener(BDProviderEnum, BDLocationListener)`方法注册监听； 要实时跟踪定位状态需要调用`addBDStatusListener(BDStatusListener)`方法注册监听。 要实时跟踪定位状态需要调用 `addBDStatusListener(BDStatusListener)` 方法注册监听。 实时获取定位原始数据需要调用 `addTestBDRawDataListener(TestResultRawData testResultData)` 方法注册监听。

  Author:
    liuruifeng

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static interface` | `BDNavigation.BDLocationListener` 北斗位置服务的监听接口
    `static class` | `BDNavigation.BDProviderEnum` 定位类型枚举
    `static class` | `BDNavigation.BDStartModeEnum` 模块启动类型枚举
    `static interface` | `BDNavigation.BDStatusListener` 北斗模块状态监听接口
    `static interface` | `BDNavigation.TestResultRawData` 获取返回的所有原始数据，

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addBDLocationListener(BDNavigation.BDProviderEnum provider, BDNavigation.BDLocationListener listener)` 跟踪位置的变化
    `void` | `addBDStatusListener(BDNavigation.BDStatusListener listener)` 添加定位状态监听
    `void` | `addTestBDRawDataListener(BDNavigation.TestResultRawData testResultData)` 添加获取原始数据监听
    `void` | `changeBDProvider(BDNavigation.BDProviderEnum provider)` 改变参与定位的卫星系统
    `void` | `changeBDStartMode(BDNavigation.BDStartModeEnum mode)` 模块改变启动模式
    `boolean` | `close()` 关闭北斗导航模块
    `boolean` | `closeEx()` 北斗模块只关闭电源，不关闭串口
    `boolean` | `free()` 关闭北斗导航模块，关闭串口+模块下
    `void` | `getBDUTC()` UTC 时间
    `static BDNavigation` | `getInstance()` 获取北斗导航模块操作实例
    `BDLocation` | `getLastLocation()` 获取最后一次定位数据
    `int` | `getLastSatelliteUCount()` 获取最新已用卫星数
    `int` | `getLastsatelliteVCount()` 获取最新可视卫星数
    `java.util.Date` | `getLastUTCDateTime()` 获取最新UTC时间
    `int` | `getTimeToFirstFix()` 获取第一次定位成功所用时间
    `boolean` | `isPowerOn()` 判断设备是否上电 Detect whether device is powered on or not.
    `boolean` | `open()` 打开北斗导航模块，打开串口+模块上电
    `boolean` | `openEx()` 北斗模块只上电不打开串口
    `void` | `setClosePort()` 关闭串口 不关电源
    `boolean` | `setOpenPort()` 打开串口 不关电源
    `int` | `writeData(byte[] data)` 写入GPS命令

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### setOpenPort

          public boolean setOpenPort()

      打开串口 不关电源
      Returns:

    - #### setClosePort

          public void setClosePort()

      关闭串口 不关电源

    - #### writeData

          public int writeData(byte[] data)

      写入GPS命令
      Returns:

    - #### getLastUTCDateTime

          public java.util.Date getLastUTCDateTime()

      获取最新UTC时间
      Returns:

    - #### getLastSatelliteUCount

          public int getLastSatelliteUCount()

      获取最新已用卫星数
      Returns:
        已用卫星数

    - #### getLastsatelliteVCount

          public int getLastsatelliteVCount()

      获取最新可视卫星数
      Returns:
        可视卫星数

    - #### getTimeToFirstFix

          public int getTimeToFirstFix()

      获取第一次定位成功所用时间
      Returns:

    - #### addBDStatusListener

          public void addBDStatusListener(BDNavigation.BDStatusListener listener)

      添加定位状态监听
      Parameters:
        `listener` -

    - #### addTestBDRawDataListener

          public void addTestBDRawDataListener(BDNavigation.TestResultRawData testResultData)

      添加获取原始数据监听
      Parameters:
        `testResultData` -

    - #### getInstance

          public static BDNavigation getInstance()
                                          throws ConfigurationException

      获取北斗导航模块操作实例
      Returns:
        北斗导航模块操作实例
      Throws:
        `ConfigurationException`

    - #### getLastLocation

          public BDLocation getLastLocation()

      获取最后一次定位数据
      Returns:

    - #### openEx

          public boolean openEx()

      北斗模块只上电不打开串口
      Returns:
        成功true，失败false

    - #### closeEx

          public boolean closeEx()

      北斗模块只关闭电源，不关闭串口
      Returns:

    - #### open

          public boolean open()
                       throws java.lang.SecurityException,
                              java.io.IOException

      打开北斗导航模块，打开串口+模块上电
      Returns:
        成功true，失败false
      Throws:
        `java.io.IOException`
        `java.lang.SecurityException`

    - #### close

          public boolean close()

      关闭北斗导航模块
      Returns:
        成功true，失败false

    - #### free

          public boolean free()

      关闭北斗导航模块，关闭串口+模块下
      Returns:
        成功true，失败false

    - #### addBDLocationListener

          public void addBDLocationListener(BDNavigation.BDProviderEnum provider,
                                            BDNavigation.BDLocationListener listener)

      跟踪位置的变化
      Parameters:
        `listener` - 监听对象

    - #### getBDUTC

          public void getBDUTC()

      UTC 时间
      Parameters:
        `getBDUTC` -

    - #### changeBDProvider

          public void changeBDProvider(BDNavigation.BDProviderEnum provider)

      改变参与定位的卫星系统
      Parameters:
        `provider` -

    - #### changeBDStartMode

          public void changeBDStartMode(BDNavigation.BDStartModeEnum mode)

      模块改变启动模式
      Parameters:
        `mode` -

    - #### isPowerOn

          public boolean isPowerOn()

      判断设备是否上电
      Detect whether device is powered on or not.
      Returns:
        已经上电返回true，反之返回false
        If powered on,return true, if not, return false.